home *** CD-ROM | disk | FTP | other *** search
-
- The GAS Configuration Plan
-
- Theory:
-
- The goal of the new configuration scheme is to bury all object format,
- target processor, and host machine dependancies in object, target, and
- host specific files. That is, to move all #ifdef's out of the gas
- common code.
-
- Here's how it works. There is a .h and a .c file for each object file
- format, a .h and a .c file for each target processor, and a .h for
- each host. config.gas creates {sym}links in the current directory to
- the appropriate files in the config directory. config.gas also serves
- as a list of triplets {host, target, object-format} that have been
- tested at one time or another. I also recommend that config.gas be
- used to document triplet specific notes as to purpose of the triplet,
- etc.
-
- Implementation:
-
- host.h is a {sym}link to .../config/xm-yourhost.h. It is intended to
- be used to hide host compiler, system header file, and system library
- differences between host machines. If your host needs actual c source
- files, then either: these are generally useful functions, in which
- case you should probably build a local library outside of the gas
- source tree, or someone, perhaps me, is confused about what is needed
- by different hosts.
-
- obj-format.h is a {sym}link to .../config/obj-something.h. It is intended
-
- All gas .c files include as.h.
-
- as.h #define's "gas", includes host.h, defines a number of gas
- specific structures and types, and then includes tp.h, obj.h, and
- target-environment.h.
-
- target-environment.h defines a target environment specific
- preprocessor flag, eg, TE_SUN, and then includes obj-format.h.
-
- obj-format.h defines an object format specific preprocessor flag, eg,
- OBJ_AOUT, OBJ_BOUT, OBJ_COFF, includes "target-processor.h", and then
- defines the object specific macros, functions, types, and structures.
-
- target-processor.h
-
- target-processor.
-
- Porting:
-
- There appear to be four major types of ports; new hosts, new target
- processors, new object file formats, and new target environments.
-